home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 June / EnigmA AMIGA RUN 08 (1996)(G.R. Edizioni)(IT)[!][issue 1996-06][EARSAN CD VII].iso / earcd / utmisc1 / fscode.lha / Src / Support.a < prev   
Text File  |  1995-03-12  |  1KB  |  69 lines

  1.  
  2.     XREF    __BSSBAS        ; linker defined base of BSS
  3.     XREF    __BSSLEN        ; linker defined length of BSS
  4.  
  5.     SECTION    text,code
  6.  
  7. ; VOID DoEncode(STRPTR out, ULONG in, struct Library *UtilityBase)
  8. ;                      A0         D0                  A1
  9.  
  10. JSRUTIL    MACRO    ;FunctionName
  11.     XREF    _LVO\1
  12.     JSR    _LVO\1(A1)
  13.     ENDM
  14.  
  15.     XDEF    @DoEncode
  16.  
  17. @DoEncode:
  18.     movem.l    D2,-(A7)
  19.  
  20.     moveq.l    #42,D2        ; set up for later use
  21.  
  22.     moveq.l    #85,D1
  23.     JSRUTIL    UDivMod32
  24.     add.l    D2,D1
  25.     move.b    D1,4(A0)
  26.  
  27.     moveq.l    #85,D1        ; tmp / 85 already in D0
  28.     JSRUTIL    UDivMod32
  29.     add.l    D2,D1
  30.     move.b    D1,3(A0)
  31.  
  32.     moveq.l    #85,D1        ; now tmp / 85 will be less than
  33.     divu    D1,D0        ;  16 bits, can use divu instead
  34.     move.l    D0,D1        ;   of UDivMod()
  35.     ext.l    D0
  36.     swap    D1
  37.     add.w    D2,D1
  38.     move.b    D1,2(A0)
  39.  
  40.     moveq.l    #85,D1
  41.     divu    D1,D0
  42.     move.l    D0,D1
  43.     ext.l    D0
  44.     swap    D1
  45.     add.w    D2,D1
  46.     move.b    D1,1(A0)
  47.  
  48.     add.l    D2,D0        ; last one -- don't need % 85
  49.     move.b    D0,(A0)
  50.  
  51.     movem.l    (A7)+,D2
  52.     rts
  53.  
  54. ; stuff() -- required by RawDoFmt()
  55.  
  56.     XDEF    _stuff
  57.  
  58. _stuff    move.b    D0,(A3)+        ; put data to output string
  59.     rts
  60.  
  61.     SECTION __MERGED,data
  62.  
  63. ; prevent picky linker from believing we don't initialize our BSS
  64.  
  65.     dc.l    __BSSBAS        ; no-ops, only to reference symbols
  66.     dc.l    __BSSLEN        ;  and make SLink happy
  67.  
  68.     END
  69.